package http

import (
	"gitee.com/zhangyu520cw/restful-api-demo-g7/apps"
	"gitee.com/zhangyu520cw/restful-api-demo-g7/apps/host"
	"github.com/gin-gonic/gin"
)

// 面向接口，真正Service的实现，在服务实例化的时候传递进来
// 也就是（CLI）Start时候

var handler = &Handler{}

// 通过写一个实体类，来处理HTTP协议，然后把内部的接口通过HTTP协议暴漏
type Handler struct {
	svc host.Service
}

// 完成了Http Handler的注册
func (h *Handler) Registry(r gin.IRouter) {
	r.POST("/hosts", h.createHost)
	r.GET("/hosts", h.queryHost)
}

func (h *Handler) Config() {
	h.svc = apps.GetImpl(host.AppName).(host.Service)
}

//func (h *Handler) Register(r gin.IRouter) {
//
//}

func (h *Handler) Name() string {
	return host.AppName
}

// 完成Htpp Handler注册
func init() {
	apps.RegistryGin(handler)
}
